package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 提高每次读写的数据量，减少实际读写的次数，可以提高读写效率
 * 一次性读写一组字节的操作为块读写
 */
public class CopeDemo2 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("image.png");
        FileOutputStream fos = new FileOutputStream("image_1.png");

        int len;//用来记录每次实际读取到的数据量(长度)
        byte[] data = new byte[1024*10];

        long start = System.currentTimeMillis();
        while ((len = fis.read(data)) != -1){
            /*
                块写操作:
                void write(byte[] data)
                一次性将给定数组中所有字节写入到文件中

                void write(byte[] data,int offset,int len)
                一次性将给定数组data中从下标offset处开始的连续len个字节写出
             */
            fos.write(data,0,len);
            //fos.write(data);
        }
        long end = System.currentTimeMillis();

        System.out.println("复制完毕! 耗时:"+(end-start)+"ms");//复制完毕! 耗时:0ms
        fos.close();
        fis.close();
    }
}
